Virtualization may be viewed as abstraction of hardware components into logical objects in order to allow a computer system to execute various software modules, for example, multiple operating systems, concurrently and in isolation from other software modules. Virtualization may be achieved by running a software layer, often referred to as a “virtual machine monitor” or “hypervisor,” above the hardware and below the virtual machines. A hypervisor may abstract the physical layer and present this abstraction to virtual machines to use, by providing interfaces between the underlying hardware and virtual devices of virtual machines. For example, processor virtualization may be implemented by the hypervisor scheduling time slots on one or more physical processors for a virtual machine, rather than a virtual machine actually having a dedicated physical processor. In another illustrative example, binary translation may be employed for translating instructions to be executed by a virtual machine to the instruction set supported by the host processors. In a yet another illustrative example, application programming interface (API) calls to be executed by a virtual machine may be translated into API calls supported by the host platform. Thus, a virtualized execution environment may be provided for executing software developed for a platform that is different from the native platform of the host computer system.